/*       I am just a fish swimming on the surface of the water, and you happened to discover me      */         
/* Includes ------------------------------------------------------------------*/
#include "G_Led.h"

/* Private define-------------------------------------------------------------*/

/* Private variabl es----------------------------------------------------------*/
static uint16_t const  ledPin[]={GPIO_Pin_8,GPIO_Pin_9,GPIO_Pin_10};
    
/* Public variables-----------------------------------------------------------*/


/* Private function prototypes------------------------------------------------*/      




/**
  * @brief  设置相应的LED
  * @param  ledNum: LED编号 1-3
  * @param  state: 状态标志 0>关闭 1>打开
  * @retval None
  */
void ledSet(unsigned char ledNum,uint8_t state){
    if(ledNum<1||ledNum>3) return ;
    state==0?GPIO_SetBits(GPIOE,ledPin[ledNum-1]):GPIO_ResetBits(GPIOE,ledPin[ledNum-1]);
}
/**
  * @brief  打开相应的LED
  * @param  ledNum: LED编号 1-3
  * @retval None
  */
void ledOn(unsigned char ledNum){
    ledSet(ledNum,1);
}

/**
  * @brief  关闭相应的LED
  * @param  ledNum: LED编号 1-3
  * @retval None
  */
void ledOff(unsigned char ledNum){
    ledSet(ledNum,0);
}

/**
  * @brief  翻转相应的LED
  * @param  ledNum: LED编号 1-3
  * @retval None
  */
void ledTog(unsigned char ledNum){
		if(ledNum<1||ledNum>3) return ;
    GPIO_ToggleBits(GPIOE,ledPin[ledNum-1]);
}
/**
  * @brief  板载LED灯初始化
  * @param  None
  * @retval None
  */
void ledGpioConfig(void){
    
    /* 
    配置GPIO外设时钟
    */
    /* 开启 GPIOE 时钟，使用外设时都要先开启它的时钟 */
    RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_GPIOE , ENABLE);
    
    /* 
    配置GPIO模式
    */
    /*定义一个GPIO_InitTypeDef类型的结构体*/
    GPIO_InitTypeDef GPIO_InitStructure;
    /*选择要控制的GPIO引脚*/                                                               
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;    
    
    /*设置引脚模式为输出模式*/
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;   
    
    /*设置引脚的输出类型为推挽输出*/
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    
    /*设置引脚为上拉模式*/
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    
    /*设置引脚速率为2MHz */   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; 
    
    /*调用库函数，使用上面配置的GPIO_InitStructure初始化3个GPIO引脚 */
    //PE8
    GPIO_Init(GPIOE, &GPIO_InitStructure);    
    //PE9                                       
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;    
    GPIO_Init(GPIOE, &GPIO_InitStructure);    
    //PE10
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;    
    GPIO_Init(GPIOE, &GPIO_InitStructure);
    
    //熄灭所有LED
    GPIO_SetBits(GPIOE, GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_10);

}

/********************************************************
  End Of File
********************************************************/

